# Author:Xiao yang
# 时间：10/09-week06

### 课本案例：①如何不破坏列表，增加内容 ②
### 作业：list方法的总结+list的切片的总结（下一周改week05笔记和作业）


names = ["Mike","Marry","Jan","Jack"]
stu_id = [10001,10002,10003,10004,10008,10001,10009,10010,10001,]  # 思考？如何取出index（10001）的所有值？

# 列表的私有方法

# 1.1 增加append() 增加list的末尾 [object:什么样的数据结构都可以]
names.append(1)
print(names)

## 1.2 插入insert()  可以指定位置增加元素
names.insert(1,'yougege')
print("insert之后的names：",names)

## 2.删除 remove 和 pop
## 优势：如果删除list中多个元素时，remove比较合适

"""
Remove first occurrence of value.
Raises ValueError if the value is not present.
删除第一次出现的值。如果值不存在，则引发ValueError。
"""

## 2.1一般情况下 使用remove先用in做判断
if 10001 in stu_id:
    stu_id.remove(10001)
    print("remove删除的结果：",stu_id)

##  2.2 pop() 删除位置为1的这个元素
names.pop(1)                                   #    ?
print("pop()方法后的names：",names)


## 3.index() 索引 查看该元素如10001，在stu_id中第一个出现的位置索引
print(stu_id.index(10001))  # 因为上面有一次remove掉了一个10001，所以现在的list是[10002, 10003, 10004, 10008, 10001, 10009, 10010, 10001]

## 4. clear（）清除所有数据
names.clear()
print("清除names列表后的值:",names)
# 输出结果：[]

## 5.count()查看列表元素出现的个数，（简单应用）统计分数出现的次数
print("count方法的结果：",stu_id.count(10001))
print(stu_id)   # 因为上面有一次remove掉了一个10001，所以现在的list是[10002, 10003, 10004, 10008, 10001, 10009, 10010, 10001]

## 6. extend() 是给指定的list进行扩充
names.extend(stu_id)   # 因为上面有一次clear掉了所有值，所以现在的list是[]空list.
print(names)



# 列表的其他方法（Sequence Types 的一些方法）
# 1. len()查看list长度
# print(("names的长度/names的列表元素个数：”,len(names))

## 2. in 查看元素是否存在list当中,结果为布尔值，False/True,
# 一般在操作list的修改和删除时会先判断
# list增、删、改：
names = ["Mike","Marry","Jan","Jack"]
names.append("Alex")
print(names)

print()

# 课本案例：
# ①panic.py
phrase = "Don't panic!"
plist = list(phrase)
print(phrase)
print(plist)

for i in range(4):
    plist.pop()

plist.pop(0)
plist.remove("'")
plist.extend([plist.pop(),plist.pop()])
plist.insert(2,plist.pop(3))

new_phrase =''.join(plist)
print(plist)
print(new_phrase)

print()

# ②panic2.py
phrase = "Don't panic!"
plist = list(phrase)
print(phrase)
print(plist)

new_phrase =''.join(plist[1:3])
new_phrase = new_phrase + ''.join([plist[5],plist[4],plist[7],plist[6]])

print(plist)
print(new_phrase)
